The present disclosure relates to the soft decoding of raw data obtained from flash memory devices, such as solid-state drives (SSDs). Lower priced Solid State Drives (SSD) are typically manufactured using multi-level cell (MLC) flash memory for increased data capacity, but MLC memory devices are sometimes less reliable than single-level cell (SLC) flash memory. Consumer SSD manufacturers have mitigated reliability issues by employing certain wear-leveling algorithms. Using MLC flash memory in enterprise applications has become more expensive due to a gradual degradation in endurance from increased (wear causing) stresses required to read, program and erase the flash memory.